A computing device generally includes a processing unit (e.g., a central processing unit (CPU), a graphics processing unit (GPU), accelerated processing units (APU), or the like), system memory controlled by an operating system (OS), and a display device. Users of the computing device demand high quality graphics and real-time (i.e., ideally zero latency) interactions to be rendered on a display and increasingly faster performance of application programs executed on the computing device. The computing device may be embodied in a traditional personal computer (desktop or notebook), mobile device (tablet, smart phone, e-reader) or embedded in a larger system (e.g., a kiosk, vehicle, etc.)
A peripheral device (e.g., a camera module) connected to the computing device relies on the CPU and system memory to interact with the rest of the computing environment. A peripheral device driver is a software application program running on the CPU that is specific to each peripheral device, and allows the peripheral device to communicate with the rest of the computing device.
In one implementation a peripheral device is used as a capture device and a compute device processes the captured data in an APU environment. An application program executed on the computing device in the implementation incurs significant latency or time delay, e.g., in rendering an image on the display. In some usage scenarios, the latency experienced by users may not meet users' expectations for a real-time, low-latency performance. The excessive latency is not acceptable to users, and needs to be reduced.
One existing solution of a peripheral device with reduced latency, is a mouse device. Mouse-device data (i.e., user movement as input) is input to the computing device and the response in the form of a cursor is output to a display. To meet user expectations, specialized motion input-device support is added to display hardware which can be used within an OS to reduce the latency perceived by a user on the display. Nonetheless, the actual processing of motion input activities by software applications occurs with higher latencies.